Guía Técnica: Dashboard de Ensamblaje de Evaluaciones

Plan de desarrollo para la creación de pruebas y exámenes a partir del banco de preguntas.

1. Visión General y Flujo de Trabajo

Este documento establece el plan técnico para desarrollar el "Gestor de Evaluaciones". El objetivo es permitir a los profesores construir evaluaciones específicas (pruebas, controles, exámenes) de manera modular, seleccionando preguntas del "Banco de Preguntas" previamente definido.

El flujo de trabajo para el profesor será el siguiente:

  1. Crear el Contenedor de la Evaluación: El profesor definirá las propiedades de la prueba: título, instrucciones, fechas y tiempo límite.
  2. Ensamblar la Prueba: Utilizando una interfaz de dos columnas, buscará y seleccionará preguntas del banco para añadirlas a su evaluación.
  3. Configurar la Prueba: Definirá el orden y el puntaje de cada pregunta dentro de esa evaluación.
  4. Publicar: Finalmente, publicará la evaluación para que quede disponible para los alumnos.

2. Arquitectura de Base de Datos (Aprobada)

Esta funcionalidad se apoya en la arquitectura de base de datos ya aprobada. A continuación se detallan las dos nuevas tablas que son el núcleo de este módulo.

2.1. Tabla `evaluaciones`

Almacena la "cáscara" o contenedor de cada prueba con sus reglas y propiedades.

-- Define cada instancia de una prueba o examen
CREATE TABLE `evaluaciones` (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `curso_id` INT NOT NULL COMMENT 'ID directo del curso para optimizar consultas',
  `subtema_id` INT NOT NULL COMMENT 'La evaluación se asocia a un subtema para que el alumno la encuentre',
  `profesor_id` INT NOT NULL,
  `titulo` VARCHAR(255) NOT NULL,
  `instrucciones` TEXT NULL,
  `estado` ENUM('borrador', 'publicada', 'archivada') NOT NULL DEFAULT 'borrador',
  `fecha_disponible` DATETIME NULL,
  `fecha_cierre` DATETIME NULL,
  `tiempo_limite_minutos` INT UNSIGNED NULL,
  FOREIGN KEY (`curso_id`) REFERENCES `cursos_sence`(`id`) ON DELETE CASCADE,
  FOREIGN KEY (`subtema_id`) REFERENCES `subtemas_curso`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB;

2.2. Tabla `evaluacion_pregunta_link`

La tabla "puente" que conecta cada evaluación con las preguntas seleccionadas del banco.

-- Tabla de enlace que conecta una evaluación con sus preguntas
CREATE TABLE `evaluacion_pregunta_link` (
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `evaluacion_id` INT NOT NULL COMMENT 'Referencia a la prueba',
  `pregunta_id` INT NOT NULL COMMENT 'Referencia a la pregunta del banco',
  `orden` INT DEFAULT 0 COMMENT 'Orden de la pregunta en esta prueba específica',
  `puntaje` DECIMAL(5,2) DEFAULT 1.00 COMMENT 'Puntaje de la pregunta en esta prueba específica',
  FOREIGN KEY (`evaluacion_id`) REFERENCES `evaluaciones`(`id`) ON DELETE CASCADE,
  FOREIGN KEY (`pregunta_id`) REFERENCES `evaluacion_preguntas`(`id`) ON DELETE CASCADE,
  UNIQUE KEY `evaluacion_pregunta_unica` (`evaluacion_id`, `pregunta_id`)
) ENGINE=InnoDB;

3. Maqueta del Dashboard Principal de Evaluaciones

Esta será la página de inicio del módulo, donde el profesor verá un listado de todas las evaluaciones que ha creado para un curso.

Gestor de Evaluaciones del Curso: "Nombre del Curso"

Título de la Evaluación Subtema Asociado Estado Nº de Preguntas Fechas de Disponibilidad Acciones
Prueba Parcial N°1 2.1: Herramientas de Diseño Publicada 15 15/07/2025 - 20/07/2025
Examen Final 5.3: Proyecto Final Borrador 2 --

4. Maqueta del Ensamblador de Evaluaciones

Al hacer clic en el botón "Ensamblar" (), el profesor accederá a la siguiente interfaz de dos columnas para armar la prueba.

Ensamblador para: "Prueba Parcial N°1"

Preguntas de la Evaluación (Total: 2)

1. ¿Cuál de las siguientes herramientas es para diseño de interfaces?

2. Analice el caso de estudio adjunto y proponga tres mejoras.

Banco de Preguntas

¿Qué es SENCE?

Tema: Introducción

¿Qué significa la sigla LMS?

Tema: Conceptos Clave

¿Cuál es el propósito de la franquicia tributaria?

Tema: SENCE

5. Lógica de Funcionamiento del Backend

Se crearán varios scripts PHP para gestionar las acciones de la interfaz, siguiendo el principio de no usar AJAX a menos que se autorice.


6. Flujo de Desarrollo y Próximos Pasos

Se propone el siguiente plan de trabajo iterativo para construir este módulo.

  1. Fase 1: Implementación de Base de Datos.
    • Acción: Crear las tablas `evaluaciones` y `evaluacion_pregunta_link` en la base de datos de desarrollo.
    • Resultado: Una base de datos lista y preparada.
  2. Fase 2: Desarrollo de Lógica de Backend.
    • Acción: Desarrollar los scripts PHP para crear, publicar, y gestionar los enlaces entre evaluaciones y preguntas.
    • Resultado: El "motor" del ensamblador estará funcional y listo para ser conectado a una interfaz.
  3. Fase 3: Desarrollo de Interfaz de Usuario (Frontend).
    • Acción: Construir el Dashboard Principal y el Ensamblador de Evaluaciones como se muestra en las maquetas.
    • Resultado: Un dashboard completamente funcional para que los profesores puedan armar sus pruebas.
  4. Fase 4: Pruebas e Integración.
    • Acción: Realizar pruebas exhaustivas del flujo completo para asegurar que los datos se guardan y se leen correctamente.
    • Resultado: Un módulo robusto, probado y listo para su uso.
Siguiente Paso Inmediato

Se solicita tu autorización para proceder con la Fase 1: crear las tablas `evaluaciones` y `evaluacion_pregunta_link` en la base de datos, consolidando así la arquitectura para este módulo.